MPS430 REGISTER SET The following is a list of the MPS430 registers used by AS430: Sixteen 16-bit registers provide adddress, data, and special functions: pc / r0 - program counter sp / r1 - stack pointer sr / r2 - status register cg1 / r2 - constant generator 1 cg2 / r3 - constant generator 2 r4 - working register r4 r5 - working register r5 ... r14 - working register r14 r15 - working register r15
MPS430 ADDRESSING MODES The following list specifies the format for each addressing mode supported by AS430: Source/Destination Operand Addressing Modes As/Ad Addressing Mode Syntax Description ----- --------------- ------ ----------- 00/0 Register mode Rn Register contents are operand. 01/1 Indexed mode X(Rn) (Rn + X) points to the operand, X is stored in the next word. 01/1 Symbolic mode ADDR (PC + X) points to the operand, X is stored in the next word, Indexed mode X(PC) is used. 01/1 Absolute mode &ADDR The word following the instruction, contains the absolute address. 10/- Indirect @Rn Rn is used as a pointer to the register mode operand. 11/- Indirect @Rn+ Rn is used as a pointer to the autoincrement operand. Rn is incremented afterwards. 11/- Immediate mode #N The word following the instruction contains the immediate constant N. Indirect autoincrement mode @PC+ is used. The terms ADDR, X and N may all be expressions. Note that not all addressing modes are valid with every instruction, refer to the MPS430 technical data for valid modes.
MPS430 Instruction Mnemonics The following table lists all MPS430 family mnemonics recognized by the AS430 assembler. The designations src and dst refer to required source and/or destination addressing mode arguments. * ADC[.W];ADC.B dst dst + C -> dst ADD[.W];ADD.B src,dst src + dst -> dst ADDC[.W];ADDC.B src,dst src + dst + C -> dst AND[.W];AND.B src,dst src .and. dst -> dst BIC[.W];BIC.B src,dst .not.src .and. dst -> dst BIS[.W];BIS.B src,dst src .or. dst -> dst BIT[.W];BIT.B src,dst src .and. dst * BR dst Branch to ....... * BRANCH dst Branch to ....... CALL dst PC+2 -> stack, dst -> PC * CLR[.W];CLR.B dst Clear destination * CLRC Clear carry bit * CLRN Clear negative bit * CLRZ Clear zero bit CMP[.W];CMP.B src,dst dst - src * DADC[.W];DADC.B dst dst + C -> dst (decimal) DADD[.W];DADD.B src,dst src + dst + C -> dst (decimal) * DEC[.W];DEC.B dst dst - 1 -> dst * DECD[.W];DECD.B dst dst - 2 -> dst * DINT Disable interrupt * EINT Enable interrupt * INC[.W];INC.B dst dst + 1 -> dst * INCD[.W];INCD.B dst dst + 2 -> dst * INV[.W];INV.B dst Invert destination JC/JHS Label Jump to Label if Carry-bit is set JEQ/JZ Label Jump to Label if Zero-bit is set JGE Label Jump to Label if (N .XOR. V) = 0 JL Label Jump to Label if (N .XOR. V) = 1 JMP Label Jump to Label unconditionally JN Label Jump to Label if Negative-bit is set JNC/JLO Label Jump to Label if Carry-bit is reset JNE/JNZ Label Jump to Label if Zero-bit is reset MOV[.W];MOV.B src,dst src -> dst * NOP No operation * POP[.W];POP.B dst Item from stack, SP+2 -> SP PUSH[.W];PUSH.B src SP - 2 -> SP, src -> @SP RETI Return from interrupt TOS -> SR, SP + 2 -> SP TOS -> PC, SP + 2 -> SZP * RET Return from subroutine TOS -> PC, SP + 2 -> SP * RLA[.W];RLA.B dst Rotate left arithmetically * RLC[.W];RLC.B dst Rotate left through carry RRA[.W];RRA.B dst MSB -> MSB . ....LSB -> C RRC[.W];RRC.B dst C -> MSB . ......LSB -> C * SBC[.W];SBC.B dst Subtract carry from destination * SETC Set carry bit * SETN Set negative bit * SETZ Set zero bit SUB[.W];SUB.B src,dst dst + .not.src + 1 -> dst SUBC[.W];SUBC.B src,dst dst + .not.src + C -> dst SBB[.W];SBB.B src,dst dst + .not.src + C -> dst SWPB dst swap bytes SXT dst Bit7 -> Bit8 ........ Bit15 * TST[.W];TST.B dst Test destination XOR[.W];XOR.B src,dst src .xor. dst -> dst Note: Asterisked Instructions Asterisked (*) instructions are emulated. They are replaced with coreinstructions by the assembler.
... Exit the ASxxxx Documentation